#include <iostream>
#include <string>
using namespace std;
#include <unistd.h>

class A
{
public:
    void print()
    {
        cout << _aa << endl;
    }
private:
    int _aa = 10;
};

class B:public A
{
public:

};

int main()
{
    B b;
    b.print();
    A a;
    //父类不能赋值给子类，需要操作符重载
    a = b;
    //而子类可以直接赋值给父类，并且不会产生临时变量，只是把子类中父类特有的部分赋值给父类。
    a.print();
    return 0;
}
// int main()
// {
//     // string t =  "/home/dpj/code";
//     // string t1 = "/home/";
//     // cout << t.find("/home/dpj") << endl;
//     // cout << t.find("/home") << endl;
//     // cout << t1.find("/home/dpj") << endl;
//     // std::string t = "ls -a -b -c -d";
//     // size_t pos = 0;
//     // while(pos < t.size())
//     // {
//     //     while(t[pos] == ' ' && pos < t.size()) pos++; //取出开头
//     //     int p1 = t.find(" ",pos+1);
//     //     if (pos >= t.size()) break;
//     //     string tmp = t.substr(pos,p1-pos);
//     //     cout << tmp << endl;
//     //     pos = p1;
//     // }
//     char * argv[] = {
//         (char*)"ls",
//         (char*)"-a",
//         (char*)"--color",
//         nullptr
//     };
//     char* env[] = {
//         nullptr
//     };
//     execve(argv[0],argv,env);
//     // execvpe(argv[0],argv,env);
//     return 0;
// }